package messaging;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
/**
 * Encapsulates the Remove Nodes Message.
 * @author Team 4
 * @version 05-20-2013
 *
 */
@SuppressWarnings("serial")
public class RemoveNodeMessage implements Serializable
{
  /**
   * Stores the actual and virtual node list to be removed.
   */
  private final ArrayList<Integer> my_remove_nodes_list;
  /**
   * Stores the message channel of all the remove nodes.
   */
  //private final ArrayList<RemoveNodeChannel> my_node_message_channel_list;
  /**
   * Stores the data of each node.
   */
  private final ArrayList<HashMap<String, Serializable>> my_node_data;
  
  /**
   * Stores the data of each node.
   */
  private final int my_actual_node_no;
  /**
   * Instantiates the actual and virtual node list to be removed.
   * @param the_remove_nodes_list stores the nodes to be removed list
   * @param the_message_channels stores list of message channels of each node
   * @param the_node_data stores the list of data present in each node
   */
  public RemoveNodeMessage(final int the_actual_node_no,
                           final ArrayList<Integer> the_remove_nodes_list,
                          // final ArrayList<RemoveNodeChannel> the_message_channels,
                           final ArrayList<HashMap<String, Serializable>> the_node_data)
  {
    my_actual_node_no = the_actual_node_no;
    my_remove_nodes_list = the_remove_nodes_list;
    //my_node_message_channel_list = the_message_channels;
    my_node_data = the_node_data;
  }
  /**
   * Return the remove node's list.
   * @return the nodes to be removed
   */
  public ArrayList<Integer> getRemoveNodesList()
  {
    return my_remove_nodes_list;
  }
  /**
   * Returns the array list of message channel list.
   * @return an arraylist each node's Message Channel list
   */
  /*public ArrayList<RemoveNodeChannel> getNodeMessageChannelList()
  {
    //return my_node_message_channel_list;
  }
  /**
   * Returns the data present in each node.
   * @return an arraylist of each node's data
   */
  public ArrayList<HashMap<String, Serializable>> getEachNodeData()
  {
    return my_node_data;
  }
  public int getMyActualNode()
  {
    return my_actual_node_no;
  }
  
}
